并发储备知识

并发储备知识

背景知识

引入:

# 何为进程?
顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。

好像还是不明白?

比如使用qq,qq从硬盘中加载到了内存, cpu 去内存中取qq的指令去运行。这就是进程。那什么是进程结束了?qq运行完了我退出了qq,要从内存中释放了qq这段代码,这就是结束了进程。

那比如我启动了很多个程序,用进程进行描述会更方便统计。

思考:一个正在运行的程序怎么就叫运行起来了?

一个正在运行的程序怎么就叫运行起来了,是由操作系统发送指令给cpu再发送指令程序从硬盘加载到了内存,也是由操作系统发送指令控制cpu去内存中取值运行,整个过程都归操作系控制的。

而进程的概念是起源于操作系统的,是操作系统最核心的概念,操作系统所有其他的概念都是围绕进程展开的。

要了解进程,有必要了解一下操作系统的前世今生。操作系统发展史

PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在。

必备的理论基础:

#一 操作系统的作用:
    1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口
    2:管理、调度进程,并且将多个进程对硬件的竞争变得有序

#二 多道技术:
    1.产生背景:针对单核,实现并发
    
    2.空间上的复用:如内存中同时有多道程序
    3.时间上的复用:复用一个cpu的时间片
       强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样
            才能保证下次切换回来时,能基于上次切走的位置继续运行
            
#三 现代计算机:
    现在的主机一般是多核,那么每个核都会利用多道技术
    有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个
    cpu中的任意一个,具体由操作系统调度算法决定。
# 1、串行:
    一个任务完完整整地运行完毕后,才能运行下一个任务

# 2、并发
    看起来多个任务是同时运行的即可,单核也可以实现并发

# 3、并行:
    真正意义上多个任务的同时运行,只有多核才实现并行

posted @ 2019-09-09 15:36  张明岩  阅读(166)  评论(0编辑  收藏  举报